// noinspection JSUnresolvedReference /** * Field Google Map */ /* global jQuery, document, redux_change, redux, google */ (function ( $ ) { 'use strict'; redux.field_objects = redux.field_objects || {}; redux.field_objects.google_maps = redux.field_objects.google_maps || {}; /* LIBRARY INIT */ redux.field_objects.google_maps.init = function ( selector ) { if ( ! selector ) { selector = $( document ).find( '.redux-group-tab:visible' ).find( '.redux-container-google_maps:visible' ); } $( selector ).each( function ( i ) { let delayRender; const el = $( this ); let parent = el; if ( ! el.hasClass( 'redux-field-container' ) ) { parent = el.parents( '.redux-field-container:first' ); } if ( parent.is( ':hidden' ) ) { return; } if ( parent.hasClass( 'redux-field-init' ) ) { parent.removeClass( 'redux-field-init' ); } else { return; } // Check for delay render, which is useful for calling a map // render after JavaScript load. delayRender = Boolean( el.find( '.redux_framework_google_maps' ).data( 'delay-render' ) ); // API Key button. redux.field_objects.google_maps.clickHandler( el ); // Init our maps. redux.field_objects.google_maps.initMap( el, i, delayRender ); } ); }; /* INIT MAP FUNCTION */ redux.field_objects.google_maps.initMap = async function ( el, idx, delayRender ) { let delayed; let scrollWheel; let streetView; let mapType; let address; let defLat; let defLong; let defaultZoom; let mapOptions; let geocoder; let g_autoComplete; let g_LatLng; let g_map; let noLatLng = false; // Pull the map class. const mapClass = el.find( '.redux_framework_google_maps' ); const containerID = mapClass.attr( 'id' ); const autocomplete = containerID + '_autocomplete'; const canvas = containerID + '_map_canvas'; const canvasId = $( '#' + canvas ); const latitude = containerID + '_latitude'; const longitude = containerID + '_longitude'; // Add map index to data attr. // Why, say we want to use delay_render, // and want to init the map later on. // You'd need the index number in the // event of multiple map instances. // This allows one to retrieve it // later. $( mapClass ).attr( 'data-idx', idx ); if ( true === delayRender ) { return; } // Map has been rendered, no need to process again. if ( $( '#' + containerID ).hasClass( 'rendered' ) ) { return; } // If a map is set to delay render and has been initiated // from another scrip, add the 'render' class so rendering // does not occur. // It messes things up. delayed = Boolean( mapClass.data( 'delay-render' ) ); if ( true === delayed ) { mapClass.addClass( 'rendered' ); } // Create the autocomplete object, restricting the search // to geographical location types. g_autoComplete = await google.maps.importLibrary( 'places' ); g_autoComplete = new google.maps.places.Autocomplete( document.getElementById( autocomplete ), {types: ['geocode']} ); // Data bindings. scrollWheel = Boolean( mapClass.data( 'scroll-wheel' ) ); streetView = Boolean( mapClass.data( 'street-view' ) ); mapType = Boolean( mapClass.data( 'map-type' ) ); address = mapClass.data( 'address' ); address = decodeURIComponent( address ); address = address.trim(); // Set default Lat/lng. defLat = canvasId.data( 'default-lat' ); defLong = canvasId.data( 'default-long' ); defaultZoom = canvasId.data( 'default-zoom' ); // Eval whether to set maps based on lat/lng or address. if ( '' !== address ) { if ( '' === defLat || '' === defLong ) { noLatLng = true; } } else { noLatLng = false; } // Can't have empty values, or the map API will complain. // Set default for the middle of the United States. defLat = defLat ? defLat : 39.11676722061108; defLong = defLong ? defLong : -100.47761000000003; if ( noLatLng ) { // If displaying a map based on an address. geocoder = new google.maps.Geocoder(); // Set up Geocode and pass address. geocoder.geocode( {'address': address}, function ( results, status ) { let latitude; let longitude; // Function results. if ( status === google.maps.GeocoderStatus.OK ) { // A good address was passed. g_LatLng = results[0].geometry.location; // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); // Get and set lat/long data. latitude = el.find( '#' + containerID + '_latitude' ); latitude.val( results[0].geometry.location.lat() ); longitude = el.find( '#' + containerID + '_longitude' ); longitude.val( results[0].geometry.location.lng() ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } else { // No data found, alert the user. alert( 'Geocode was not successful for the following reason: ' + status ); } } ); } else { // If displaying map based on an lat/lng. g_LatLng = new google.maps.LatLng( defLat, defLong ); // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, // Start off far unless an item is selected, set by php. streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create the map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } }; redux.field_objects.google_maps.renderControls = function ( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ) { let markerTooltip; let infoWindow; let g_marker; let geoAlert = mapClass.data( 'geo-alert' ); // Get HTML. const input = document.getElementById( autocomplete ); // Set objects into the map. g_map.controls[google.maps.ControlPosition.TOP_LEFT].push( input ); // Bind objects to the map. g_autoComplete = new google.maps.places.Autocomplete( input ); g_autoComplete.bindTo( 'bounds', g_map ); // Get the marker tooltip data. markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Create infoWindow. infoWindow = new google.maps.InfoWindow(); // Create marker. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), draggable: true, title: markerTooltip, animation: google.maps.Animation.DROP } ); geoAlert = decodeURIComponent( geoAlert ); // Place change. google.maps.event.addListener( g_autoComplete, 'place_changed', function () { let place; let address; let markerTooltip; infoWindow.close(); // Get place data. place = g_autoComplete.getPlace(); // Display alert if something went wrong. if ( ! place.geometry ) { window.alert( geoAlert ); return; } console.log( place.geometry.viewport ); // If the place has a geometry, then present it on a map. if ( place.geometry.viewport ) { g_map.fitBounds( place.geometry.viewport ); } else { g_map.setCenter( place.geometry.location ); g_map.setZoom( 17 ); // Why 17? Because it looks good. } markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Set the marker icon. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), title: markerTooltip, clickable: true, draggable: true, animation: google.maps.Animation.DROP } ); // Set marker position and display. g_marker.setPosition( place.geometry.location ); g_marker.setVisible( true ); // Form array of address components. address = ''; if ( place.address_components ) { address = [( place.address_components[0] && place.address_components[0].short_name || '' ), ( place.address_components[1] && place.address_components[1].short_name || '' ), ( place.address_components[2] && place.address_components[2].short_name || '' )].join( ' ' ); } // Set the default marker info window with address data. infoWindow.setContent( '
' + place.name + '
' + address ); infoWindow.open( g_map, g_marker ); // Run Geolocation. redux.field_objects.google_maps.geoLocate( g_autoComplete ); // Fill in address inputs. redux.field_objects.google_maps.fillInAddress( el, latitude, longitude, g_autoComplete ); } ); // Marker drag. google.maps.event.addListener( g_marker, 'drag', function ( event ) { document.getElementById( latitude ).value = event.latLng.lat(); document.getElementById( longitude ).value = event.latLng.lng(); } ); // End marker drag. google.maps.event.addListener( g_marker, 'dragend', function () { redux_change( el.find( '.redux_framework_google_maps' ) ); } ); // Zoom Changed. g_map.addListener( 'zoom_changed', function () { el.find( '.google_m_zoom_input' ).val( g_map.getZoom() ); } ); // Marker Info Window. infoWindow = new google.maps.InfoWindow(); google.maps.event.addListener( g_marker, 'click', function () { const marker_info = containerID + '_marker_info'; const infoValue = document.getElementById( marker_info ).value; if ( '' !== infoValue ) { infoWindow.setContent( infoValue ); infoWindow.open( g_map, g_marker ); } } ); }; /* FILL IN ADDRESS FUNCTION */ redux.field_objects.google_maps.fillInAddress = function ( el, latitude, longitude, g_autoComplete ) { // Set variables. const containerID = el.find( '.redux_framework_google_maps' ).attr( 'id' ); // What if someone only wants city, or state, ect... // gotta do it this way to check for the address! // Need to check each of the returned components to see what is returned. const componentForm = { street_number: 'short_name', route: 'long_name', locality: 'long_name', administrative_area_level_1: 'short_name', country: 'long_name', postal_code: 'short_name' }; // Get the place details from the autocomplete object. const place = g_autoComplete.getPlace(); let component; let i; let addressType; let _d_addressType; let val; let len; document.getElementById( latitude ).value = place.geometry.location.lat(); document.getElementById( longitude ).value = place.geometry.location.lng(); for ( component in componentForm ) { if ( componentForm.hasOwnProperty( component ) ) { // Push in the dynamic form element ID again. component = containerID + '_' + component; // Assign to proper place. document.getElementById( component ).value = ''; document.getElementById( component ).disabled = false; } } // Get each component of the address from the place details // and fill the corresponding field on the form. len = place.address_components.length; for ( i = 0; i < len; i += 1 ) { addressType = place.address_components[i].types[0]; if ( componentForm[addressType] ) { // Push in the dynamic form element ID again. _d_addressType = containerID + '_' + addressType; // Get the original. val = place.address_components[i][componentForm[addressType]]; // Assign to proper place. document.getElementById( _d_addressType ).value = val; } } }; redux.field_objects.google_maps.geoLocate = function ( g_autoComplete ) { if ( navigator.geolocation ) { navigator.geolocation.getCurrentPosition( function ( position ) { const geolocation = new google.maps.LatLng( position.coords.latitude, position.coords.longitude ); const circle = new google.maps.Circle( { center: geolocation, radius: position.coords.accuracy } ); g_autoComplete.setBounds( circle.getBounds() ); } ); } }; /* API BUTTON CLICK HANDLER */ redux.field_objects.google_maps.clickHandler = function ( el ) { // Find the API Key button and react on click. el.find( '.google_m_api_key_button' ).on( 'click', function () { // Find message wrapper. const wrapper = el.find( '.google_m_api_key_wrapper' ); if ( wrapper.is( ':visible' ) ) { // If the wrapper is visible, close it. wrapper.slideUp( 'fast', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } else { // If the wrapper is visible, open it. wrapper.slideDown( 'medium', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } } ); el.find( '.google_m_autocomplete' ).on( 'keypress', function ( e ) { if ( 13 === e.keyCode ) { e.preventDefault(); } } ); // Auto select autocomplete contents, // since Google doesn't do this inherently. el.find( '.google_m_autocomplete' ).on( 'click', function ( e ) { $( this ).trigger( 'focus' ); $( this ).trigger( 'select' ); e.preventDefault(); } ); }; } )( jQuery ); Spielen Sie in Casinia Casino: Das beste Online-Casino für Spieler in der Schweiz – Orchid Group
Warning: Undefined variable $encoded_url in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Deprecated: base64_decode(): Passing null to parameter #1 ($string) of type string is deprecated in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Spielen Sie in Casinia Casino: Das beste Online-Casino für Spieler in der Schweiz

Die Vorteile von Casinia Casino: Warum es die erste Wahl für Schweizer Spieler sein sollte

Casinia Casino ist eine hervorragende Wahl für casinia login Schweizer Spieler, und hier sind sechs Gründe dafür:
1. Eine breite Palette von Spielen: Casinia Casino bietet eine grosse Auswahl an Spielen, von klassischen Tischspielen bis hin zu modernen Video-Slots.
2. Sicherheit und Schutz: Casinia Casino ist lizenziert und wird von renommierten Behörden reguliert, was sicherstellt, dass Ihre Daten und Finanzen geschützt sind.
3. Attraktive Boni und Promotionen: Casinia Casino bietet neue Spieler einen grosszügigen Willkommensbonus und laufende Promotionen für treue Spieler.
4. Mehrere Zahlungsmethoden: Casinia Casino akzeptiert eine Vielzahl von Zahlungsmethoden, einschliesslich Kreditkarten, E-Wallets und Banküberweisungen.
5. Kundendienst rund um die Uhr: Das Casino bietet einen 24/7 Kundendienst, der Ihnen bei Fragen oder Problemen zur Seite steht.
6. Unterstützung für Schweizer Spieler: Casinia Casino ist auf die Bedürfnisse von Schweizer Spielern zugeschnitten und bietet Unterstützung in Deutsch sowie die Möglichkeit, in Schweizer Franken zu spielen.

Spielen Sie in Casinia Casino: Das beste Online-Casino für Spieler in der Schweiz

Casinia Casino Spielangebot: Eine Übersicht über die besten Online-Spiele

Besuchen Sie Casinia Casino, eine der besten Online-Casino-Plattformen der Schweiz. Entdecken Sie ein umfangreiches Spielangebot, das keine Wünsche offen lässt. Probieren Sie Ihr Glück an spannenden Spielautomaten, Tischspielen und Live-Dealer-Spielen. Genießen Sie die besten Online-Spiele von Top-Anbietern wie NetEnt, Microgaming und Play’n GO. Egal, ob Sie ein Fan von Slots, Roulette, Blackjack oder Poker sind, bei Casinia Casino werden Sie fündig. Spielen Sie jetzt und erleben Sie ein unvergessliches Online-Casino-Abenteuer!

Spielen Sie in Casinia Casino: Das beste Online-Casino für Spieler in der Schweiz

Casinia Casino Bonusse und Aktionen: So profitieren Sie als Schweizer Spieler

In diesem Artikel erfahren Sie, wie Sie als Schweizer Spieler von Casinia Casino Bonussen und Aktionen profitieren können.
Casinia Casino bietet eine Vielzahl an Bonussen, von Willkommensboni bis zu wöchentlichen Cashbacks.
Als Schweizer Spieler können Sie zum Beispiel von einem 100% Willkommensbonus bis zu 500 CHF und 200 Freispielen profitieren.
Des Weiteren gibt es wöchentliche Reload-Boni und Cashbacks, die Ihre Einzahlungen und Verluste reduzieren können.
Casinia Casino bietet auch treue Spieler belohnt durch ein Punktesammelsystem und exklusive Aktionen.
Stöbern Sie durch die aktuellen Angebote und profitieren Sie als Schweizer Spieler von Casinia Casino Bonussen und Aktionen.

Sicherheit und Fairness bei Casinia Casino: Wie Schweizer Spieler geschützt sind

Casinia Casino ist bestrebt, Schweizer Spielern eine sichere und faire Spielerfahrung zu bieten. Verantwortungsbewusstes Spiel und Transparenz sind zwei der Kernwerte des Casinos. Um die Sicherheit der Spieler zu gewährleisten, verwendet Casinia Casino eine fortschrittliche Verschlüsselungstechnologie, um sicherzustellen, dass alle persönlichen und finanziellen Daten der Spieler geschützt sind. Darüber hinaus ist Casinia Casino lizenziert und wird von renommierten unabhängigen Prüfstellen wie eCOGRA überwacht, um sicherzustellen, dass alle Spiele fair sind und zufällige Ergebnisse liefern. Schweizer Spieler können auch beruhigt sein, dass Casinia Casino strenge Alters- und Identitätsprüfungen durchführt, um sicherzustellen, dass nur legale Spieler Zugang zum Casino haben. Zusätzlich zu all diesen Sicherheitsmaßnahmen bietet Casinia Casino auch eine Vielzahl von verantwortungsvollen Spieltools, wie Einzahlungslimits, Sitzungslimits und Selbstausschlussoptionen, um sicherzustellen, dass das Spielen für Schweizer Spieler ein unterhaltsames und kontrolliertes Erlebnis bleibt.

Kundendienst und Benutzerfreundlichkeit von Casinia Casino: Eine Bewertung

Das Casinia Casino überzeugt Schweizer Spieler mit hervorragendem Kundendienst und benutzerfreundlichem Design. Der Support ist rund um die Uhr erreichbar und bietet Hilfe in vielen Sprachen, darunter auch Deutsch. Die Benutzerfreundlichkeit ist exzellent, die Navigation ist intuitiv und die Ladezeiten sind kurz. Die Casino-Spiele sind übersichtlich kategorisiert und die Registrierung ist einfach und unkompliziert. Positiv hervorzuheben ist auch die mobile Version des Casinos, die eine reibungslose und unterhaltsame Spielerfahrung ermöglicht. Insgesamt ist das Casinia Casino eine hervorragende Wahl für Schweizer Spieler, die auf der Suche nach einem benutzerfreundlichen Online-Casino mit exzellentem Kundendienst sind.

Name: Hans Müller, 45 Jahre               Sterne: ★★★★★

Ich bin ein begeisterter Spieler in Casinia Casino und ich kann es jedem empfehlen, der nach einem vertrauenswürdigen und unterhaltsamen Online-Casino sucht. Die Spielauswahl ist riesig und ich habe noch nie ein Problem mit der Auszahlung meiner Gewinne gehabt. Das Beste daran ist, dass ich von überall aus spielen kann, solange ich eine Internetverbindung habe. Ich fühle mich immer sicher und geschützt, wenn ich in Casinia Casino spiele. Spielen Sie in Casinia Casino: Das beste Online-Casino für Spieler in der Schweiz.

Name: Lisa Schmidt, 32 Jahre               Sterne: ★★★★★

Ich habe in vielen Online-Casinos gespielt, aber Casinia Casino ist definitiv mein Favorit. Die Benutzeroberfläche ist einfach zu bedienen und die Grafik ist hervorragend. Ich liebe es, dass es so viele verschiedene Spiele zur Auswahl gibt, von Slots bis zu Tischspielen. Die Boni und Werbeaktionen sind auch sehr großzügig und ich habe oft von ihnen profitiert. Insgesamt ist Casinia Casino eine großartige Wahl für alle, die auf der Suche nach einem unterhaltsamen und lohnenden Online-Casino-Erlebnis sind. Spielen Sie in Casinia Casino: Das beste Online-Casino für Spieler in der Schweiz.

Spielen Sie in Casinia Casino: Das beste Online-Casino für Spieler in der Schweiz.

Erleben Sie eine breite Palette von Casinospielen, einschließlich Slots, Tischspiele und Live-Casino.

Profitieren Sie von sicheren und geschützten Zahlungsmethoden sowie einem kompetenten und mehrsprachigen Kundensupport.

Design and Develop by Ovatheme